<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>2.理解闭包</title>
</head>
<body>
1. 闭包如何产生
    * 当一个嵌套的内部(子)函数引用了嵌套的外部(父)函数的变量(函数)时，就产生了闭包
      ()
2. 闭包到底是什么
    * 理解一：嵌套的内部函数
    * 理解二：包含被引用的变量(函数)的对象
3. 闭包产生条件
    * 函数嵌套
    * 内部函数引用外部函数的数据(变量/函数)
    * 执行外部函数
<script type='text/javascript'>
    function fn1() {
        var a = 19;
        /*function fn2() {//执行函数定义就能产生闭包(不用调用内部函数)
            console.log(a);// fn2引用了fn1中的变量
        }*/
        var fn3 = function () {
            console.log(a);
        }
    }
    fn1();//不执行fn2
</script>
</body>
</html>